package com.px.device.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.px.common.annotation.Excel;
import com.px.common.core.domain.BaseEntity;

import com.px.common.config.MinIoClientConfig;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;

/**
 * 机场信息对象 airport_info
 * 
 * @author WRJ
 * @date 2024-08
 */
@Data
public class AirportInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 机场主键id */
    private Long airportId;

    /** 机场sn码 */
    @ApiModelProperty(value = "机场sn码")
    @Excel(name = "机场sn码")
    private String airportSn;

    /** 机场型号.将type与subtype拼接,如67-0表示M30,67-1表示M30T,前端根据数据字典展示 */
    @ApiModelProperty(value = "机场型号.将type与subtype拼接,如67-0表示M30,67-1表示M30T,前端根据数据字典展示")
    @Excel(name = "机场型号.将type与subtype拼接,如67-0表示M30,67-1表示M30T,前端根据数据字典展示")
    private String airportModel;

    /** 机场名称 */
    @ApiModelProperty(value = "机场名称")
    @Excel(name = "机场名称")
    private String airportName;

    /** 机场地址 */
    @ApiModelProperty(value = "机场地址")
    @Excel(name = "机场地址")
    private String airportAddress;

    /** 机场最后一次任务时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "机场最后一次任务时间,yyyy-MM-dd")
    @Excel(name = "机场最后一次任务时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date airportEndTaskTime;

    /** 机场子设备ID */
    @ApiModelProperty(value = "机场子设备ID")
    @Excel(name = "机场子设备ID")
    private Long airportChildId;

    /** 机场子设备sn码 */
    @ApiModelProperty(value = "机场子设备sn码")
    @Excel(name = "机场子设备sn码")
    private String airportChildSn;

    /** 机场子设备名称 */
    @ApiModelProperty(value = "机场子设备名称")
    @Excel(name = "机场子设备名称")
    private String airportChildName;

    /** 机场子设备型号 */
    @ApiModelProperty(value = "机场子设备型号")
    @Excel(name = "机场子设备型号")
    private String airportChildMode;

    /** 机场子设备状态,{'0':'待机','1':'起飞准备','2':'起飞准备完毕','3':'手动飞行','4':'自动起飞','5':'航线飞行','6':'全景拍照','7':'智能跟随','8':'ADS-B 躲避','9':'自动返航','10':'自动降落','11':'强制降落','12':'三桨叶降落','13':'升级中','14':'未连接'} */
    @ApiModelProperty(value = "机场子设备状态,{'0':'待机','1':'起飞准备','2':'起飞准备完毕','3':'手动飞行','4':'自动起飞','5':'航线飞行','6':'全景拍照','7':'智能跟随','8':'ADS-B 躲避','9':'自动返航','10':'自动降落','11':'强制降落','12':'三桨叶降落','13':'升级中','14':'未连接'}")
    @Excel(name = "机场子设备状态")
    private Long airportChildState;

    /** 机场子设备电量 */
    @ApiModelProperty(value = "机场子设备电量")
    @Excel(name = "机场子设备电量")
    private Long airportChildCapacity;

    /** 机场图片地址 */
    @ApiModelProperty(value = "机场图片地址")
    @Excel(name = "机场图片地址")
    private String airportPicture;

    /** 机场图片地址 */
    @ApiModelProperty(value = "机场图片预览地址")
    @Excel(name = "机场图片预览地址")
    private String airportPictureUrl;

    /** 扇区信息 */
    @ApiModelProperty(value = "扇区信息")
    @Excel(name = "扇区信息")
    private String sector;

    /** 责任人ID */
    @ApiModelProperty(value = "责任人ID")
    @Excel(name = "责任人ID")
    private Long dutyBy;

    /** 责任人姓名 */
    @ApiModelProperty(value = "责任人姓名")
    @Excel(name = "责任人姓名")
    private String dutyName;

    public String getAirportPictureUrl() {
    if (null != airportPicture && airportPicture.startsWith("http")) {
        return airportPicture;
    } else {
        return MinIoClientConfig.PREVIEW_END_POINT_URL + "/" + airportPicture;
    }
}
}
